﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace LectorHuellaC
{
    public partial class FormBajaUsuarios : Form
    {
        String versionapp = "A 1.0";
        public FormBajaUsuarios()
        {
            InitializeComponent();
            cargarDatos();
            this.Text = ":: Reloj Checador :: " + versionapp + " (" + this.Text + ")";
            cargarDatosSucursal();
        }
        int id_empresa = Convert.ToInt32(Settings1.Default.id_empresa);
        string IdSucursal = Settings1.Default.IdSucursal;
        string IdSucursalNew = "";


        public void cargarDatos()
        {
            
            lbUsuarios.DataSource = null;
            lbUsuarios.Items.Clear();

            ConectaBD conBD = new ConectaBD();
            DataSet ds = conBD.Consulta("Select IdSucursal, id_empleado, Nombre from reloj_empleados Where " 
            +" id_empresa = " + id_empresa + " And IdSucursal = '" + IdSucursal + "' and active_user=1");

            if (ds.Tables.Count == 0)
            {
                MessageBox.Show("Error en la consulta de empleados (T)", "Alta de usuarios", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }


            if (ds.Tables["Resultado"].Rows.Count == 0)
            {
                MessageBox.Show("Error en la consulta de empleados (R)", "Alta de usuarios", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            ArrayList arreglo = new ArrayList();
            foreach (DataRow dr2 in ds.Tables["Resultado"].Rows)
            {
                arreglo.Add(new ConectaBD.clsEmpleados(dr2["Nombre"].ToString(), dr2["id_empleado"].ToString()));
            }
            label1.Text=conBD.conexioStatus;
            lbUsuarios.DataSource = arreglo;
            lbUsuarios.DisplayMember = "NombreEmpleado";
            lbUsuarios.ValueMember = "id_empleado";
            lbUsuarios_SelectedIndexChanged(lbUsuarios, System.EventArgs.Empty);

        }

        private void button1_Click(object sender, EventArgs e)
        {
            string id_empresa = Settings1.Default.id_empresa.ToString();
            string IdSucursal = Settings1.Default.IdSucursal;
            string id_empleado = Convert.ToString(lbUsuarios.SelectedValue);
            ConectaBD conBD = new ConectaBD();
            string sentencia = "update reloj_empleados set active_user=0 where id_empleado='" + id_empleado + "' and id_empresa='" + id_empresa + "' and idSucursal='" + IdSucursal + "'";

            if (!lbUsuarios.SelectedItem.Equals(null))
            {
                if (MessageBox.Show("Esta seguro de la baja?", "Confirmar Baja", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    bool correcto = conBD.InsertUpdate(sentencia);
                    if (correcto)
                    {
                        MessageBox.Show("Baja realizada", "Administración de Huella", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        cargarDatos();
                    }
                    else
                    {
                        MessageBox.Show("Error en actualizacion", "Administración de Huella", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }

        private void lbUsuarios_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lbUsuarios.SelectedItem != null)
            {
                //cargarDatosSucursal();
            }
            //cargarDatosSucursal();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Dispose();
            Close();
        }

        public void cargarDatosSucursal()
        {
            int id_empresa = this.id_empresa;
            cbSucursal.DataSource = null;
            cbSucursal.Items.Clear();
            ConectaBD conBD = new ConectaBD();

            string sucursal = "select id_sucursal, sc_nombre from catsucursales where id_empresa='" + id_empresa + "'";


            string idusuario ="";

            
            //ConectaBD.clsEmpleados objcls = (ConectaBD.clsEmpleados)lbUsuarios.SelectedValue;
            idusuario = Convert.ToString(lbUsuarios.SelectedValue);
 
            
            string sucursal_selected = "Select IdSucursal, id_empleado, Nombre,entrada_mult from reloj_empleados Where "
            + " id_empresa = '" + id_empresa + "' And IdSucursal = '" + IdSucursal + "' "
            + "and active_user=1 and id_empleado='" + idusuario + "'";

            DataSet datasurcusal = conBD.Consulta(sucursal);

            DataSet datasurcusal_selected = conBD.Consulta(sucursal_selected);

            if (datasurcusal.Tables.Count == 0)
            {
                MessageBox.Show("Error en la consulta de Empresa (T)", "Alta de usuarios", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            if (datasurcusal.Tables["Resultado"].Rows.Count == 0)
            {
                MessageBox.Show("Error en la consulta de empleados (R)", "Alta de usuarios", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            ArrayList arreglo = new ArrayList();
            foreach (DataRow dr2 in datasurcusal.Tables["Resultado"].Rows)
            {
                arreglo.Add(new ConectaBD.clsSucursales(dr2["sc_nombre"].ToString(), dr2["id_sucursal"].ToString()));
            }

            cbSucursal.DataSource = arreglo;
            cbSucursal.DisplayMember = "sc_nombre";
            cbSucursal.ValueMember = "id_sucursal";
            cbSucursal.SelectedValue = (Convert.ToString(datasurcusal_selected.Tables[0].Rows[0]["IdSucursal"]));

            if (Convert.ToString(datasurcusal_selected.Tables[0].Rows[0]["entrada_mult"]).Equals("True"))
            {

                chkentrada_mult.Checked = true;
            }
            else
            {
                chkentrada_mult.Checked = false;
            }

            cbSucursal_SelectedIndexChanged(cbSucursal, System.EventArgs.Empty);
        }

        private void cbSucursal_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void button3_Click(object sender, EventArgs e)
        {
            string id_empresa = Settings1.Default.id_empresa.ToString();
            IdSucursalNew = Convert.ToString(cbSucursal.SelectedValue);
            string id_empleado = Convert.ToString(lbUsuarios.SelectedValue);
            string entrada_mult = Convert.ToString(chkentrada_mult.Checked);

            ConectaBD conBD = new ConectaBD();
            string sentencia = "";
            int bit = 0;
            if (chkentrada_mult.Checked)
            {
                bit = 1;   
            }

            if (!IdSucursal.Equals(IdSucursalNew))
            {
                sentencia = "update reloj_empleados set idsucursal='" + IdSucursalNew + "' and entrada_mult="+bit+" "
                    + " where id_empleado='" + id_empleado + "' "
                     + " and id_empresa='" + id_empresa + "' and IdSucursal='" + IdSucursal + "' ";
            }
            else
            {
                sentencia = "update reloj_empleados set entrada_mult="+bit+" "
                                    + " where id_empleado='" + id_empleado + "' "
                                     + " and id_empresa='" + id_empresa + "' and IdSucursal='" + IdSucursal + "'  ";
            }

            bool correcto = conBD.InsertUpdate(sentencia);
            if (correcto)
            {
                MessageBox.Show("Registro Actualizado", "Administración de Huella", MessageBoxButtons.OK, MessageBoxIcon.Information);
                cargarDatos();
            }
            else
            {
                MessageBox.Show("Error de actualizacion", "Administración de Huella", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            chkentrada_mult.Checked = false;
        }

        private void lbUsuarios_MouseClick(object sender, MouseEventArgs e)
        {
            cargarDatosSucursal();
        }

    }
}
